<?php
declare (strict_types=1);
namespace app\admin\model\system\notify;

use app\common\model\BaseModel;
use think\model\relation\HasOne;

/**
 * Class 定义普通用户系统通知节点数据模型
 *
 * @package app\admin\model\system\notify
 */
class NotifyNode extends BaseModel
{
    /**
     * 表名
     *
     * @var string
     */
    protected $name = 'system_notify_node_config';

    /**
     * 设置自动写入时间
     *
     * @var boolean
     */
    protected $autoWriteTimestamp = true;

    /**
     * 不写入创建时间
     *
     * @var boolean
     */
    protected $createTime = false;

    /**
     * 时间显示格式
     *
     * @var string
     */
    protected $dateFormat = 'Y-m-d H:i';

    /**
     * 定义表主键
     *
     * @var string
     */
    protected $pk = 'id';

    /**
     * 全局查询范围
     *
     * @var [type]
     */
    protected $globalScope = ['status', 'mhm'];

    public function scopeStatus($query, $status = 1)
    {
        $query->where('status', $status);
    }

    /**
     * 限制机构条件
     *
     * @param    [type]                         $query [description]
     * @return   [type]                                [description]
     */
    public function scopeMhm($query)
    {
        // 如果不是平台时, 加入机构条件限制
        if (!request()->is_platform) {
            $query->where('is_mhm', 0);
        }
    }

    /**
     * 关联配置数据
     *
     * @return HasOne
     */
    public function notifyNodeData(): HasOne
    {
        return $this->hasOne(NotifyNodeData::class, 'config_id', 'id')->bind([
            'sms_template_code',
            'open_info',
            'mhm_id',
            'config_id',
            'data_content'     => 'content',
            'data_update_time' => 'update_time'
        ]);
    }
}
